home *** CD-ROM | disk | FTP | other *** search
/ All for Cell Phones: Sony Ericsson / Sony-Ericsson 2004.iso / Java / BlockBuster / BlockBuster.jar / Court.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-11-14  |  7.6 KB  |  538 lines

  1. import java.util.Random;
  2. import javax.microedition.lcdui.Canvas;
  3. import javax.microedition.lcdui.Graphics;
  4.  
  5. public class Court extends Canvas {
  6.    private Paddle paddle;
  7.    private Ball[] balls;
  8.    private boolean paddlemove;
  9.    private int PaddleDirection;
  10.    private int ballsInPlay;
  11.    private int MsgStatus = 0;
  12.    public static boolean Msging = false;
  13.    public boolean Playing = false;
  14.    private int StageNo;
  15.    private int[][] blocktable = new int[4][8];
  16.    private boolean blockLeft = false;
  17.    public static int score = 0;
  18.    private boolean ItemMove = false;
  19.    private static int itemX = 0;
  20.    private static int itemY = 0;
  21.    private static Random rand = new Random();
  22.    private BlockBuster blockbuster;
  23.    private int ballsRequested = 1;
  24.    private int itemType = 0;
  25.    static int life;
  26.    static int hiscore;
  27.  
  28.    public Court(BlockBuster var1) {
  29.       this.blockbuster = var1;
  30.       this.paddle = new Paddle();
  31.       this.balls = new Ball[3];
  32.  
  33.       for(int var2 = 0; var2 < this.balls.length; ++var2) {
  34.          this.balls[var2] = new Ball(this);
  35.       }
  36.  
  37.       this.balls[0].putInPlay();
  38.       this.ballsInPlay = 1;
  39.       life = 3;
  40.       this.paddlemove = false;
  41.       this.PaddleDirection = 0;
  42.       this.StageNo = 1;
  43.       this.setBlockTable(this.StageNo);
  44.       hiscore = 0;
  45.    }
  46.  
  47.    public void BallMove(boolean var1) {
  48.       if (var1) {
  49.          this.balls[0].setBallMoveOn();
  50.       } else {
  51.          this.balls[0].setBallMoveOff();
  52.       }
  53.  
  54.    }
  55.  
  56.    public void ChgMsgStatus(int var1) {
  57.       this.MsgStatus = var1;
  58.    }
  59.  
  60.    public int GetMsgStatus() {
  61.       return this.MsgStatus;
  62.    }
  63.  
  64.    public void GoNext(int var1) {
  65.       this.StageNo = var1;
  66.       this.setBlockTable(this.StageNo);
  67.       this.ItemMove = false;
  68.       this.itemType = 0;
  69.       this.ballsInPlay = 1;
  70.       this.balls[1].takeOutOfPlay();
  71.       this.balls[2].takeOutOfPlay();
  72.       this.balls[0].inPlayChange();
  73.       this.balls[0].putInPlay();
  74.       this.paddle.moveCenter();
  75.       this.blockbuster.setSpeed(60);
  76.       this.paddle.init();
  77.       this.paddle.smaller(this.StageNo);
  78.    }
  79.  
  80.    void ItemPaint(Graphics var1) {
  81.       if (this.itemType == 1) {
  82.          var1.setColor(255);
  83.          var1.fillArc(itemX, itemY, 11, 9, 0, 360);
  84.       } else if (this.itemType == 2) {
  85.          var1.setColor(16711782);
  86.          var1.fillArc(itemX, itemY, 11, 9, 0, 360);
  87.       } else if (this.itemType == 3) {
  88.          var1.setColor(16737843);
  89.          var1.fillArc(itemX, itemY, 11, 9, 0, 360);
  90.       } else if (this.itemType == 4) {
  91.          var1.setColor(39168);
  92.          var1.fillArc(itemX, itemY, 11, 9, 0, 360);
  93.       } else if (this.itemType == 5) {
  94.          var1.setColor(3342540);
  95.          var1.drawArc(itemX, itemY, 11, 9, 0, 360);
  96.          var1.fillArc(itemX + 3, itemY + 2, 5, 5, 0, 360);
  97.       } else if (this.itemType == 6) {
  98.          var1.setColor(13369344);
  99.          var1.fillArc(itemX, itemY, 5, 6, 0, 360);
  100.          var1.fillArc(itemX + 5, itemY, 5, 6, 0, 360);
  101.          var1.fillArc(itemX + 2, itemY + 2, 6, 7, 0, 360);
  102.       } else if (this.itemType == 7) {
  103.          var1.setColor(0);
  104.          var1.drawArc(itemX, itemY, 11, 9, 0, 360);
  105.          var1.fillArc(itemX + 3, itemY + 2, 5, 5, 0, 360);
  106.       } else if (this.itemType == 8) {
  107.          var1.setColor(16763904);
  108.          var1.drawArc(itemX, itemY, 11, 9, 0, 360);
  109.          var1.setColor(13369344);
  110.          var1.fillArc(itemX + 3, itemY + 2, 5, 5, 0, 360);
  111.       }
  112.  
  113.       if (itemY > 71 && itemY <= 83) {
  114.          if (this.paddle.ItemisHit(itemX, itemY)) {
  115.             if (this.itemType == 1) {
  116.                this.blockbuster.SpeedUp();
  117.                score += 5;
  118.             } else if (this.itemType == 2) {
  119.                this.blockbuster.SlowDown();
  120.                score += 5;
  121.             } else if (this.itemType == 3) {
  122.                this.paddle.bigger();
  123.                score += 5;
  124.             } else if (this.itemType == 4) {
  125.                this.paddle.smaller(3);
  126.                score += 5;
  127.             } else if (this.itemType == 5) {
  128.                this.addBall();
  129.                score += 5;
  130.             } else if (this.itemType == 6) {
  131.                ++life;
  132.                score += 5;
  133.             } else if (this.itemType == 7) {
  134.                this.paddle.smallest();
  135.                this.blockbuster.setSpeed(30);
  136.                score += 50;
  137.             } else if (this.itemType == 8) {
  138.                this.addBall();
  139.                this.paddle.biggest();
  140.                this.blockbuster.setSpeed(55);
  141.                score += 50;
  142.             }
  143.  
  144.             this.ItemMove = false;
  145.          }
  146.       } else if (itemY > 83) {
  147.          this.ItemMove = false;
  148.          this.itemType = 0;
  149.       }
  150.  
  151.       itemY += 2;
  152.    }
  153.  
  154.    void addBall() {
  155.       ++this.ballsRequested;
  156.       if (this.ballsInPlay > 0) {
  157.          for(int var1 = 0; var1 < this.balls.length; ++var1) {
  158.             if (!this.balls[var1].inPlay()) {
  159.                this.balls[var1].putInPlayAdd(this.paddle.GetPos());
  160.                ++this.ballsInPlay;
  161.                return;
  162.             }
  163.          }
  164.       }
  165.  
  166.    }
  167.  
  168.    public boolean didntHit() {
  169.       --this.ballsInPlay;
  170.       return this.ballsInPlay == 0;
  171.    }
  172.  
  173.    private void displayScore(Graphics var1) {
  174.       char[] var2 = new char[]{(char)(score / 1000 % 10 + 48), (char)(score / 100 % 10 + 48), (char)(score / 10 % 10 + 48), (char)(score % 10 + 48)};
  175.       var1.setColor(255);
  176.       var1.drawString("Score: " + new String(var2), 95, 85, 24);
  177.       var1.drawString(": " + life, 14, 85, 20);
  178.       var1.setColor(13369344);
  179.       var1.fillArc(1, 88, 5, 6, 0, 360);
  180.       var1.fillArc(6, 88, 5, 6, 0, 360);
  181.       var1.fillArc(3, 90, 6, 7, 0, 360);
  182.    }
  183.  
  184.    synchronized boolean isBlockHit(int var1, int var2) {
  185.       boolean var3 = false;
  186.       int var4 = 0;
  187.       byte var5 = 0;
  188.       byte var6 = 0;
  189.       if (var1 > 0 && var1 <= 12) {
  190.          var5 = 0;
  191.       } else if (var1 >= 13 && var1 <= 24) {
  192.          var5 = 1;
  193.       } else if (var1 >= 25 && var1 <= 36) {
  194.          var5 = 2;
  195.       } else if (var1 >= 37 && var1 <= 48) {
  196.          var5 = 3;
  197.       } else if (var1 >= 49 && var1 <= 60) {
  198.          var5 = 4;
  199.       } else if (var1 >= 61 && var1 <= 71) {
  200.          var5 = 5;
  201.       } else if (var1 >= 71 && var1 <= 80) {
  202.          var5 = 6;
  203.       } else if (var1 > 80 && var1 <= 96) {
  204.          var5 = 7;
  205.       }
  206.  
  207.       if (var2 >= 15 && var2 < 20) {
  208.          var6 = 0;
  209.       } else if (var2 >= 20 && var2 < 25) {
  210.          var6 = 1;
  211.       } else if (var2 >= 25 && var2 < 30) {
  212.          var6 = 2;
  213.       } else if (var2 >= 30) {
  214.          var6 = 3;
  215.       }
  216.  
  217.       var4 = this.blocktable[var6][var5];
  218.       if (var4 >= 1) {
  219.          --var4;
  220.          var3 = true;
  221.          ++score;
  222.          if (var4 == 0 && !this.ItemMove) {
  223.             this.itemStart(var6, var5);
  224.          }
  225.       } else {
  226.          var4 = 0;
  227.          var3 = false;
  228.       }
  229.  
  230.       this.blocktable[var6][var5] = var4;
  231.       return var3;
  232.    }
  233.  
  234.    boolean isBlockHitEdge(int var1) {
  235.       boolean var2 = false;
  236.       int var3 = var1 + 5;
  237.       if (var3 == 12 || var3 == 13 || var3 == 24 || var3 == 25 || var3 == 36 || var3 == 37 || var3 == 48 || var3 == 49 || var3 == 60 || var3 == 61 || var3 == 72 || var3 == 73 || var3 == 84 || var3 == 85) {
  238.          var2 = true;
  239.       }
  240.  
  241.       return var2;
  242.    }
  243.  
  244.    boolean isPaddleHit(int var1) {
  245.       return this.paddle.isHit(var1);
  246.    }
  247.  
  248.    boolean isPaddleHitEdgeL(int var1) {
  249.       return this.paddle.isHitEdgeL(var1);
  250.    }
  251.  
  252.    boolean isPaddleHitEdgeR(int var1) {
  253.       return this.paddle.isHitEdgeR(var1);
  254.    }
  255.  
  256.    void itemStart(int var1, int var2) {
  257.       itemX = var2 * 11 + 4;
  258.       itemY = 15 + var1 * 5;
  259.       int var3 = (rand.nextInt() >>> 1) % 100;
  260.       if (var3 < 21) {
  261.          this.itemType = 1;
  262.       } else if (var3 < 36) {
  263.          this.itemType = 2;
  264.       } else if (var3 < 54) {
  265.          this.itemType = 3;
  266.       } else if (var3 < 70) {
  267.          this.itemType = 4;
  268.       } else if (var3 < 89) {
  269.          this.itemType = 5;
  270.       } else if (var3 < 90) {
  271.          this.itemType = 6;
  272.       } else if (var3 < 95) {
  273.          this.itemType = 7;
  274.       } else {
  275.          this.itemType = 8;
  276.       }
  277.  
  278.       this.ItemMove = true;
  279.    }
  280.  
  281.    public void keyPressed(int var1) {
  282.       int var2 = ((Canvas)this).getGameAction(var1);
  283.       switch (var2) {
  284.          case 2:
  285.             this.PaddleDirection = 1;
  286.             this.paddlemove = true;
  287.             ((Canvas)this).repaint();
  288.             return;
  289.          case 3:
  290.          case 4:
  291.          default:
  292.             return;
  293.          case 5:
  294.             this.PaddleDirection = 2;
  295.             this.paddlemove = true;
  296.             ((Canvas)this).repaint();
  297.       }
  298.    }
  299.  
  300.    public void keyReleased(int var1) {
  301.       int var2 = ((Canvas)this).getGameAction(var1);
  302.       switch (var2) {
  303.          case 2:
  304.             this.paddle.left();
  305.             this.PaddleDirection = 0;
  306.             this.paddlemove = false;
  307.             ((Canvas)this).repaint();
  308.             return;
  309.          case 3:
  310.          case 4:
  311.          default:
  312.             return;
  313.          case 5:
  314.             this.paddle.right();
  315.             this.PaddleDirection = 0;
  316.             this.paddlemove = false;
  317.             ((Canvas)this).repaint();
  318.       }
  319.    }
  320.  
  321.    public void keyRepeated(int var1) {
  322.       int var2 = ((Canvas)this).getGameAction(var1);
  323.       switch (var2) {
  324.          case 2:
  325.             this.paddlemove = true;
  326.             this.PaddleDirection = 10;
  327.             return;
  328.          case 3:
  329.          case 4:
  330.          default:
  331.             this.paddlemove = false;
  332.             return;
  333.          case 5:
  334.             this.paddlemove = true;
  335.             this.PaddleDirection = 20;
  336.       }
  337.    }
  338.  
  339.    public void moveBall() {
  340.       if (this.Playing) {
  341.          for(int var1 = 0; var1 < this.balls.length; ++var1) {
  342.             this.balls[var1].move();
  343.          }
  344.  
  345.       }
  346.    }
  347.  
  348.    public void paint(Graphics var1) {
  349.       if (!Msging) {
  350.          if (this.Playing) {
  351.             var1.setColor(16777215);
  352.             var1.fillRect(0, 0, 96, 100);
  353.             var1.setColor(39423);
  354.             var1.fillRect(0, 0, 96, 4);
  355.             var1.fillRect(92, 0, 4, 83);
  356.             var1.fillRect(0, 0, 4, 83);
  357.             var1.setColor(0);
  358.             var1.drawLine(4, 4, 92, 4);
  359.             var1.drawLine(3, 4, 3, 82);
  360.             var1.drawLine(92, 4, 92, 82);
  361.             var1.setColor(255);
  362.             var1.drawLine(3, 3, 93, 3);
  363.             var1.drawLine(2, 4, 2, 82);
  364.             var1.drawLine(93, 4, 93, 82);
  365.             var1.setColor(39372);
  366.             var1.drawLine(2, 2, 94, 2);
  367.             var1.drawLine(1, 4, 1, 82);
  368.             var1.drawLine(94, 4, 94, 82);
  369.             var1.setColor(39372);
  370.             var1.drawLine(2, 2, 94, 2);
  371.             var1.drawLine(1, 4, 1, 82);
  372.             var1.drawLine(94, 4, 94, 82);
  373.             this.blockLeft = false;
  374.  
  375.             for(int var5 = 0; var5 < 4; ++var5) {
  376.                for(int var6 = 0; var6 < 8; ++var6) {
  377.                   int var2 = this.blocktable[var5][var6];
  378.                   if (var2 != 0) {
  379.                      this.blockLeft = true;
  380.                      int var3 = var6 * 11 + 4;
  381.                      int var4 = 15 + var5 * 5;
  382.                      if (var2 == 5) {
  383.                         var1.setColor(0);
  384.                         var1.fillRect(var3, var4, 10, 4);
  385.                      } else if (var2 == 4) {
  386.                         var1.setColor(26112);
  387.                         var1.fillRect(var3, var4, 10, 4);
  388.                      } else if (var2 == 3) {
  389.                         var1.setColor(13369344);
  390.                         var1.fillRect(var3, var4, 10, 4);
  391.                      } else if (var2 == 2) {
  392.                         var1.setColor(16753920);
  393.                         var1.fillRect(var3, var4, 10, 4);
  394.                      } else {
  395.                         var1.setColor(26367);
  396.                         var1.fillRect(var3, var4, 10, 4);
  397.                      }
  398.                   }
  399.                }
  400.             }
  401.  
  402.             if (!this.blockLeft) {
  403.                Msging = true;
  404.                if (this.StageNo == 10) {
  405.                   this.ChgMsgStatus(5);
  406.                } else {
  407.                   this.ChgMsgStatus(2);
  408.                }
  409.             }
  410.  
  411.             for(int var7 = 0; var7 < this.balls.length; ++var7) {
  412.                this.balls[var7].paint(var1);
  413.             }
  414.  
  415.             if (this.ItemMove) {
  416.                this.ItemPaint(var1);
  417.             }
  418.  
  419.             if (this.paddlemove) {
  420.                if (this.PaddleDirection == 1) {
  421.                   this.paddle.left();
  422.                } else if (this.PaddleDirection == 2) {
  423.                   this.paddle.right();
  424.                } else if (this.PaddleDirection == 10) {
  425.                   this.paddle.leftF();
  426.                } else if (this.PaddleDirection == 20) {
  427.                   this.paddle.rightF();
  428.                }
  429.             }
  430.  
  431.             if (!this.balls[0].RBallMove()) {
  432.                this.balls[0].SetPos(this.paddle.GetPos());
  433.             }
  434.  
  435.             this.paddle.paint(var1);
  436.             this.displayScore(var1);
  437.             if (score > hiscore) {
  438.                hiscore = score;
  439.             }
  440.  
  441.          }
  442.       }
  443.    }
  444.  
  445.    void reStart() {
  446.       if (this.ballsInPlay <= 0) {
  447.          --life;
  448.          if (life <= 0) {
  449.             Msging = true;
  450.             this.ChgMsgStatus(3);
  451.          } else {
  452.             this.ItemMove = false;
  453.             this.itemType = 0;
  454.             this.ballsInPlay = 1;
  455.             this.paddle.moveCenter();
  456.             this.balls[0].inPlayChange();
  457.             this.balls[0].putInPlay();
  458.             this.blockbuster.setSpeed(60);
  459.             this.paddle.init();
  460.          }
  461.       }
  462.  
  463.    }
  464.  
  465.    public void setBlockTable(int var1) {
  466.       byte var2 = 0;
  467.       byte var3 = 0;
  468.       byte var4 = 0;
  469.       byte var5 = 0;
  470.       if (var1 == 1) {
  471.          var2 = 2;
  472.          var3 = 1;
  473.          var4 = 1;
  474.          var5 = 1;
  475.       } else if (var1 == 2) {
  476.          var2 = 1;
  477.          var3 = 3;
  478.          var4 = 2;
  479.          var5 = 1;
  480.       } else if (var1 == 3) {
  481.          var2 = 2;
  482.          var3 = 3;
  483.          var4 = 1;
  484.          var5 = 1;
  485.       } else if (var1 == 4) {
  486.          var2 = 3;
  487.          var3 = 3;
  488.          var4 = 1;
  489.          var5 = 1;
  490.       } else if (var1 == 5) {
  491.          var2 = 3;
  492.          var3 = 4;
  493.          var4 = 1;
  494.          var5 = 1;
  495.       } else if (var1 == 6) {
  496.          var2 = 4;
  497.          var3 = 3;
  498.          var4 = 2;
  499.          var5 = 1;
  500.       } else if (var1 == 7) {
  501.          var2 = 5;
  502.          var3 = 3;
  503.          var4 = 2;
  504.          var5 = 1;
  505.       } else if (var1 == 8) {
  506.          var2 = 4;
  507.          var3 = 5;
  508.          var4 = 3;
  509.          var5 = 2;
  510.       } else if (var1 == 9) {
  511.          var2 = 5;
  512.          var3 = 5;
  513.          var4 = 4;
  514.          var5 = 3;
  515.       } else if (var1 == 10) {
  516.          var2 = 5;
  517.          var3 = 5;
  518.          var4 = 5;
  519.          var5 = 5;
  520.       }
  521.  
  522.       for(int var6 = 0; var6 < 4; ++var6) {
  523.          for(int var7 = 0; var7 < 8; ++var7) {
  524.             if (var6 == 0) {
  525.                this.blocktable[var6][var7] = var2;
  526.             } else if (var6 == 1) {
  527.                this.blocktable[var6][var7] = var3;
  528.             } else if (var6 == 2) {
  529.                this.blocktable[var6][var7] = var4;
  530.             } else {
  531.                this.blocktable[var6][var7] = var5;
  532.             }
  533.          }
  534.       }
  535.  
  536.    }
  537. }
  538.